#ifndef SHAREDDATA_H
#define SHAREDDATA_H

#ifdef USE_DEMO
#include  <KrtsDemo.h>
#else
#include <LinkControl.h>
#endif

constexpr int BUFFER_SIZE  = 2048;
const int US    = 10;
const int MS    = US * 1000;
const int S     = MS * 1000;

// 抖动计算结构体
struct JitterTestData {
    int64 classes[10];
    int count;
    int64 max_value;
    int64 min_value;
};

struct SharedData {
    KSHandle kernel_handle;                               // 内核句柄
    KSHandle adapter_handle;                              // 网络适配器句柄
    KSHandle pipe_handle;                                 // 数据管道句柄
    KSHandle receive_event_handle;                        // 接收事件的句柄
    KSHandle socket_call_back;                            // 套接字回调的句柄
    KSHandle socket_handle;                               // 套接字的句柄
    KSIPConfig ip_config;                                 // 本机IP地址
    uint remote_addr;                                     // 远端地址
    uint port_config;                                     // 侦听端口
    char device_name[256];                                // 网络适配器的名称
    uint is_finished;                                     // 套接字通信状态
    char send_buffer[256];                                // 发送缓存
    int send_length;                                      // 发送缓冲区长度
    JitterTestData jitter_data;                           // 抖动数据
};

#endif //SHAREDDATA_H
